|
ARD2
1.00 for Rev B. Hardware
Airbag Reference Demonstrator using MPC5604P
|
00001 00019 #ifndef _UTILS_H 00020 #define _UTILS_H 00021 00022 /* 00023 ************************************************************** 00024 * Defines, Macros and Typedefs 00025 **************************************************************/ 00026 /*** Constant Macros ***/ 00027 /* Default Yes and No defines */ 00028 #ifndef TRUE 00029 #define TRUE (1u) 00030 #endif 00031 #ifndef CLEAR 00032 #define CLEAR (0u) 00033 #endif 00034 #ifndef BITS_IN_NIBBLE 00035 #define BITS_IN_NIBBLE (4u) 00036 #endif 00037 #ifndef BITS_IN_BYTE 00038 #define BITS_IN_BYTE (8u) 00039 #endif 00040 #ifndef BITS_IN_16 00041 #define BITS_IN_16 (16u) 00042 #endif 00043 #ifndef BITS_IN_24 00044 #define BITS_IN_24 (24u) 00045 #endif 00046 #ifndef BYTES_IN_16 00047 #define BYTES_IN_16 (2u) 00048 #endif 00049 #ifndef BYTES_IN_32 00050 #define BYTES_IN_32 (4u) 00051 #endif 00052 #ifndef MSB_8_BITS 00053 #define MSB_8_BITS (0x80u) 00054 #endif 00055 #ifndef MSB_MINUS_ONE 00056 #define MSB_MINUS_ONE (0x07u) 00057 #endif 00058 00059 #ifndef BIT_DEFINITION 00060 #define BIT_DEFINITION 00061 #define BIT0 (1u << 0u) 00062 #define BIT1 (1u << 1u) 00063 #define BIT2 (1u << 2u) 00064 #define BIT3 (1u << 3u) 00065 #define BIT4 (1u << 4u) 00066 #define BIT5 (1u << 5u) 00067 #define BIT6 (1u << 6u) 00068 #define BIT7 (1u << 7u) 00069 #define BIT8 (1u << 8u) 00070 #define BIT9 (1u << 9u) 00071 #define BIT10 (1u << 10) 00072 #define BIT11 (1u << 11) 00073 #define BIT12 (1u << 12) 00074 #define BIT13 (1u << 13) 00075 #define BIT14 (1u << 14) 00076 #define BIT15 (1u << 15) 00077 #define BIT16 (1u << 16) 00078 #define BIT17 (1u << 17) 00079 #define BIT18 (1u << 18) 00080 #define BIT19 (1u << 19) 00081 #define BIT20 (1u << 20) 00082 #define BIT21 (1u << 21) 00083 #define BIT22 (1u << 22) 00084 #define BIT23 (1u << 23) 00085 #define BIT24 (1u << 24) 00086 #define BIT25 (1u << 25) 00087 #define BIT26 (1u << 26) 00088 #define BIT27 (1u << 27) 00089 #define BIT28 (1u << 28) 00090 #define BIT29 (1u << 29) 00091 #define BIT30 (1u << 30) 00092 #define BIT31 (1u << 31) 00093 #endif 00094 00095 00096 /*** Function Macros ***/ 00097 #ifndef N_ELEMENTS 00098 #define N_ELEMENTS(X) (sizeof(X)/sizeof(*(X))) 00099 #endif 00100 00101 /*** Enums ***/ 00102 00103 /*** TypeDefs ***/ 00104 00105 /* 00106 ************************************************************** 00107 * Declarations 00108 **************************************************************/ 00109 /*** Extern ***/ 00110 00111 /*** Globals ***/ 00112 00113 /*** Static Globals ***/ 00114 00115 /* 00116 ************************************************************** 00117 * Function Prototypes 00118 **************************************************************/ 00119 /* 00120 ****************************************************************************** 00121 * 00122 * Function: u8fnCheckOddParity() 00123 * 00124 */ 00137 uint8_t u8fnCheckOddParity(uint8_t u8Byte, uint8_t u8ParityPosition); 00138 /* 00139 ****************************************************************************** 00140 * 00141 * Function: u16fnCheckOddParity() 00142 * 00143 */ 00156 uint16_t u16fnCheckOddParity(uint16_t u16Word, uint16_t u16ParityPosition); 00157 /* 00158 ****************************************************************************** 00159 * 00160 * Function: u32fnCheckOddParity() 00161 * 00162 */ 00175 uint32_t u32fnCheckOddParity(uint32_t u32Word, uint32_t u32ParityPosition); 00176 /* 00177 ****************************************************************************** 00178 * 00179 * Function: u8fnCRC8() 00180 * 00181 */ 00190 uint8_t u8fnCRC8(const uint8_t* pu8Buffer, 00191 uint8_t u8Poly, 00192 uint8_t u8MBitsize, 00193 uint8_t u8Remainder); 00194 /* 00195 ****************************************************************************** 00196 * 00197 * Function: vfnASCIIByteToHex() 00198 * 00199 */ 00210 void vfnASCIIByteToHex(uint8_t* pu8Source, uint8_t* pu8Target, \ 00211 uint16_t u16NOfBytes); 00212 /* 00213 ****************************************************************************** 00214 * 00215 * Function: vfnHexToASCIIMaskToList() 00216 * 00217 */ 00230 void vfnHexToASCIIMaskToList(const uint16_t cu16MaskList, 00231 uint8_t* pau8DataArray, 00232 uint16_t* pu16Index, 00233 const uint16_t cu16Mask); 00234 /* 00235 ****************************************************************************** 00236 * 00237 * Function: u8fnUnitASCIIToHex() 00238 * 00239 */ 00249 static uint8_t u8fnUnitASCIIToHex(const uint8_t u8ASCIIData); 00250 /* 00251 ****************************************************************************** 00252 * 00253 * Function: vfnHexToASCII() 00254 * 00255 */ 00264 void vfnHexToASCII(uint8_t* pu8Source, uint8_t* pu8Target, \ 00265 uint16_t u16NOfBytes); 00266 /* 00267 ****************************************************************************** 00268 * 00269 * Function: u8fnUnitHexToASCII() 00270 * 00271 */ 00281 static uint8_t u8fnUnitHexToASCII(uint8_t u8HexData); 00282 /* 00283 ****************************************************************************** 00284 * 00285 * Function: vfnCopyArray() 00286 * 00287 */ 00296 void vfnCopyArray(uint8_t* pu8Source, uint8_t* pu8Target, \ 00297 uint16_t u16NOfBytes); 00298 /* 00299 ****************************************************************************** 00300 * 00301 * Function: u16fnMaxU16DeltaInArray() 00302 * 00303 */ 00312 uint16_t u16fnMaxU16DeltaInArray(const uint16_t* au16Array, 00313 uint8_t u8ArraySize); 00314 /* 00315 ****************************************************************************** 00316 * 00317 * Function: u32fnDiffAbsoluteValue() 00318 * 00319 */ 00327 uint32_t u32fnDiffAbsoluteValue(uint32_t au32Value1, uint32_t au32Value2); 00328 #endif /* _FILENAME_H */